<?php
/**
 * Game_Building_Academy
 *
 * Класс Game_Building_Academy отвечает за исследования
 *
 * @author Дмитрий Кузьма <kouzma.d@gmail.com>
 * @version 1.0
 */
class Game_Building_Academy extends Game_Building_Item {
	
	const BUILDING_ID = 10;

	/**
	 * Конструктор объекта (создание, инициализация, загрузка данных)
	 *
	 * @param Game_Building $objBuilding - объект здание (информация из БД)
	 */
	public function __construct(Game_Building $objBuilding) {
		parent::__construct($objBuilding);
	}
	
	
	/**
	 * (non-PHPdoc)
	 * @see Game_Building_Item::getLevelPropertyInfo()
	 */
	public function getLevelPropertyInfo ($level, $isCurrentLevel = false) {
		$levelevelInfo = array();
		$levelevelInfo['header'] = $isCurrentLevel ? Service_Translate::getText('Текущее время на исследования') : Service_Translate::getText('Время на исследования на уровне ') . $level;
		$levelevelInfo['info'] = '' . round(100 / $this->getResearchSpeed($level)) . ' %';
		return $levelevelInfo;
	}
	
	/**
	 * Получает скорость исследований
	 */
	public static function getResearchSpeed($buildingLevel = null) {
		if ($buildingLevel === null) {
			$objGeneral = Game_General::instance();
			$arrBuildingInfo = $objGeneral->objPlace->getBuildingInfo(self::BUILDING_ID);
			$buildingLevel = empty($arrBuildingInfo['level']) ? 0 : $arrBuildingInfo['level'];
		}
		if (!$buildingLevel) return 1;
		return round(
			pow(0.9, 1 - $buildingLevel),
			1
		);
	}
	
	/**
	 * Получает список юнитов, которые могут быть исследованы
	 *
	 * @return array:
	 */
	/*
	public static  function getUnitsToBeCreate() {
		$arrRet = array();
		$objGeneral = Game_General::instance();
		$arrAllUnits = Game_Building::getAllUnitsInfo();
		$arrPlaceBuildings = $objGeneral->objPlace->getBuildingsData();
		$arrUnitsResearchedIds = Game_Unit::getUnitsResearchedIds();
		$arrUnitsDependences = Game_Unit::getUnitsDependences();
		foreach ($arrAllUnits as $arrUnits) {
			if ($arrBuilding['ID_building'] < 6) continue;		// TODO не универсальная проверка при изменении числа ресурсов. По хорошему стоит переписать
			$objCurrentBuilding = new Game_Building($arrBuilding);
			// Если возможно построить здание
			if ($objCurrentBuilding->isAvailabbleToBuildInPlaceAnyTime($arrPlaceBuildings)) {
				$arrBuilding['unperformed_dependences'] = $objCurrentBuilding->getNecessaryBuildingsToBuildInPlace($arrPlaceBuildings, $arrBuildingsDependences);
				$arrRet[] = $arrBuilding;
			}
		}
	
		return $arrRet;
	}
	*/
}
?>